Asynchronous Transfer Mode (ATM) is a networking technology which will be used in a variety of telecommunications and computing environments. ATM is designed to support users having diverse requirements for service. For example, ATM will support both Constant Bit Rate (CBR) and Variable Bit Rate (VBR) types of connections. Further, ATM is intended to provide flexible use of network bandwidth.
ATM is a connection based technology. Before data can be transferred between two stations, a connection (also referred to as a Virtual Circuit or VC) must be established between them. A first end station requests a connection to a second end station by submitting a connection request to a User to Network Interface (UNI) with the network. After a virtual circuit has been established, end stations exchange information by sending and receiving ATM "cells" containing data. An ATM cell is a fixed length packet used to relay data between network stations.
A major function of a station on an ATM network is supporting the Quality of Service (QoS) for each virtual circuit to which the station is connected. QoS is established for each virtual circuit when the circuits are set-up. Examples of QoS parameters that are specified in a connection request include loss rate, acceptable delay, and peak and average data rates.
The network initially uses the QoS parameters in the connection request for admission control. When a connection request is made, the network determines whether sufficient resources (transmission bandwidth, buffers, or other) exist to allow the connection to be established with the requested parameters, while not impacting the QoS of already established connections. If there are insufficient resources to support the requested QoS, the connection request is rejected, and the station may repeat the request with lower QoS parameters.
Once a connection is established, the network may ensure that each transmitting station meets and does not exceed, the QoS for each VC with that station. This is done through two complementary procedures, traffic shaping at the transmitting end station and each intermediate station, and traffic policing at each intermediate station and the receiving end station. Traffic shaping refers to steps performed by transmitting end stations and intermediate stations to ensure the transmission rate for any given VC does not exceed the peak or average data rate allowed for that VC.
Traffic policing may be performed by intermediate network stations between the end stations of a connection, and by the receiving end station when receiving the forwarded cell. If an intermediate station or a receiving end station detects persistent transmission rates in excess of the QoS for a VC, it may take a variety of actions, including alerting network administrators, or discarding cells. Correct operation of the network and consistent service levels require that traffic shaping be used to pace cell streams transmitted from the end stations of an ATM network.
A known mechanism for controlling both the peak and average transmission rates for a single VC is referred to as the "Double Leaky Bucket" system. The Double Leaky Bucket system determines whether a VC can transmit a cell at a given point in time without exceeding the QoS parameters for that VC. A straight forward hardware implementation of the leaky bucket system requires the use of counters, timers, and control logic for each one of the potential VCs to a network station. In an ATM adapter for a network end station, which must simultaneously support Quality of Service monitoring for a large number of VCs, implementing such Double Leaky Bucket logic for each individual potential VC is impractical in terms of chip silicon area and die size.
There is therefore a need for a new system for traffic shaping on ATM network stations. The new system should minimize the amount of logic required to be implemented in hardware or silicon so that it can be used efficiently to support large numbers of VCs in an ATM adapter for an end station on an ATM network. The new system should accurately and fairly control the transmission rate for each VC on a network station without using individual Double Leaky Bucket circuits for each possible VC on the network station.